puzzle reasoning